/**************************
 * \if English
 * @Date:2018.09.10
 * @Author:
 * @Brief:
 * @Detail:
 * @Editor:
 * @Brief:
 * \else
 *
 * @创建日期：2018年9月10日
 * @作者：hualei
 * @大概功能：MODBUS_WRITE指令
**************************/
#ifndef MODBUSWRITE_H
#define MODBUSWRITE_H
#include "instructionEnum.h"
#include <QString>
#include <QDataStream>
/**
 * @brief The ModbusWrite class         从数据流中获取或写入指令参数
 */
class ModbusWrite
{
public:
    ModbusWrite();
    /**
     * @brief operator <<   向数据流中写入指令参数
     * @param out           写入数据流
     * @param myVector      指令
     * @return
     */
    friend QDataStream& operator <<(QDataStream &out,ModbusWrite &myVector);

    /**
     * @brief operator >>       向数据流中读取指令参数
     * @param in                读取数据流
     * @param myVector          指令
     * @return
     */
    friend QDataStream& operator >>(QDataStream &in, ModbusWrite &myVector);

public:
    INSTRUCTION_TYPE instructionType;           // 指令类型

    E_MODBUS_SPEC_TYPE modbusType;              // 总线类型

    VALUE_TYPE writeSourceType;                 // 写入数据类型 REG_CONST、CONST_DATA

    quint32 robotRegisterIndex;    // 写入寄存器非常量数值　REG_CONST

    short constWriteData;                        // 写入寄存器常量        CONST_DATA

    quint32 modbuWriteRegAddress;               // 寄存器地址

    QString busId;                                  // 总线ID,远程服务器的ip和port

    QString jmpLable;                           // 跳转标签号

    QString noteStr;                            // 注释
};

#endif // MODBUSWRITE_H
